Skip to content

Git 命令速记

标签
命令行/git
字数
2123 字
阅读时间
9 分钟

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

建议通过大纲索引快速找到需要使用的命令

基础

初始化 (init)

shell
git init <目录(可选>

在指定目录下创建空的Git仓库。运行时没有参数,以初始化当前目录为git仓库。

克隆 (clone)

shell
git clone <代码仓库地>

克隆位于 <代码仓库地址> 的仓库到本地机器上。原始(origin)可以位于本地文件系统上,也可以通过 HTTP 或 SSH 位于远程机器上。

修改配置 (config)

设置姓名
shell
git config --local user.name <用户>

定义作者姓名,将会应用到当前版本库中的所有提交。对于只有一个账户的开发者而言,可以使用 --global 标志来给所有 Git 代码库设置当前用户的配置选项。

设置邮箱地址
shell
git config user.email `<电子邮件>`

定义作者电子邮件,将会应用到当前版本库中的所有提交。对于只有一个账户的开发者而言,可以使用 --global 标志来给所有 Git 代码库设置当前用户的配置选项。

暂存更改 (add)

shell
git add <目录/文>

暂存 <目录> 中的所有修改,以便于提交。用 <文件> 替换 <目录> 来暂存一个特定的文件。

提交更改 (commit)

shell
git commit -m <提交信>

提交暂存的文件。使用 <提交信息> 作为提交消息,不通过文本编辑器来编辑。

文件修改状态 (status)

shell
git status

列出哪些文件是暂存的、未暂存的和未追踪的。

提交历史 (log)

shell
git log

使用默认格式显示整个提交历史。关于自定义参数,请看 附加选项

查看未暂存的更改 (diff)

shell
git diff

显示索引和工作目录之间的未暂存变更。

撤销变更

命令说明
git revert <提交哈希>创建新的提交,撤销 <提交哈希> 中的所有修改,然后将其应用到当前分支。
git reset <文件>从暂存区域移除 <文件>,但保留工作目录不变。这可以在不覆盖任何修改的情况下解除文件的缓存。
git clean -n显示哪些文件会被从工作目录中删除。使用 -f 标志代替 -n 标志来执行清理。

覆盖提交历史

命令说明
git commit ---amend将最后一次提交的内容和最后一次提交的内容结合起来替换。在没有任何分期的情况下使用,可以编辑最后一次提交的信息
git rebase <基准>将当前分支重新归入 <基准><基准> 可以是一个提交编号、分支名称、一个标签,或者是对 HEAD 的相对引用。
git reflog显示本地版本库HEAD的修改日志。添加 --relative-date 标志来显示日期信息,或者 --all 来显示所有参考。

分支操作

命令说明
git branch列出你的代码仓库中的所有分支。添加 <分支名> 参数,创建一个名称为 <分支名> 的新分支。
git checkou -b <分支名>创建并签出一个名为 <分支名> 的新分支。去掉 -b 标志,签出一个现有的分支。
git merge <分支名><分支名> 合并到当前分支。

远程代码库

命令说明
git remote add <标记名称> <远程地址>创建一个新的连接到一个远程版本库。添加远程后,你可以在其他命令中使用 <标记名称> 作为 <远程地址> 的快捷方式。
git fetch <远程地址/标记名称> <分支名称>从版本库中获取一个特定的 <分支名称> 。不使用 <分支名称> 来获取所有的远程参考。
git pull <远程地址/标记名称>获取当前分支的指定远程副本,并立即将其合并到本地副本。
git push <远程地址/标记名称> <分支名称>将该分支与必要的提交和对象一起推送到 <远程地址/标记名称> 。如果分支不存在,则在远端 repo 中创建命名的分支。

Git 配置

命令说明
git config --global user.name <用户名>定义作者的名字,用于当前用户的所有提交。
git config --global user.email <电子邮件>定义作者的电子邮件,用于当前用户的所有提交。
git config --global alias. <别名> <git 命令>创建 Git 命令的快捷方式。例如,alias.glog "log --graph --oneline" 将设置 "git glog "等同于 "git log --graph --oneline"。
git config --system core.editor <编辑器>设置机器上所有用户的命令所使用的文本编辑器。<编辑器> 参数应该是启动所需编辑器的命令(例如,vi)。
git config --global --edit在文本编辑器中打开全局配置文件进行手动编辑。

Git 记录

命令说明
git log -<上限><上限> 来限制提交的数量。例如,"git log -5 "将限制为5个提交。
git log --oneline将每个提交浓缩为一行。
git log -p显示每个提交的完整差异。
git log --stat包括哪些文件被修改了,以及每个文件中被添加或删除的相对行数。
git log --author= "<文本模式>"搜索某个特定作者的提交内容。
git log --grep="<文本模式>"搜索提交信息符合 <文本模式> 的提交。
git log <开始>..<结束>显示发生在 <开始><结束> 之间的提交。参数可以是提交ID、分支名称、HEAD或任何其他类型的修订参考。
git log -- <文件>只显示有指定文件的提交。
git log --graph --decorate--graph 标志会在提交信息的左侧绘制一个基于文本的提交图表。msgs。--decorate(装饰)在提交信息的左侧添加分支的名称或标签。

Git Diff 对比

命令说明
git diff HEAD显示工作目录和最后一次提交之间的差异。
git diff --cached显示暂存的修改与最后一次提交的差异。

Git Reset 重设

命令说明
git reset重置暂存区域,使之与最近的提交相匹配,但保留工作目录不变。
git reset --hard重置暂存区域和工作目录以匹配最近的提交,并覆盖工作目录中的所有修改。
git reset <提交哈希>将当前分支提示向后移动到 <提交哈希>,重置暂存区域以匹配,但不影响工作目录。
git reset --hard <提交哈希>与前述相同,但将暂存区和工作目录都重置为匹配。删除未提交的修改,以及 <提交哈希> 之后的所有提交。

Git Rebase 变基

命令说明
git rebase -i <基准>使用交互模式将当前分支重新归入 <基准>。启动编辑器,输入命令,说明如何将每个提交转移到新基地。

Git Pull 拉取

命令说明
git pull --rebase <远程连接/标记名称>获取远程的当前分支的副本,并将其重新归入本地副本。使用 git rebase 相似的模式而不是 merge 模式来整合各分支。

Git Push 推送

命令说明
git push <远程连接/标记名称> --force强制执行git推送,即使它的结果是非快进式合并。不要使用 --force 标志,除非你绝对确定你知道自己在做什么。
git push <remote> --all推送你所有的本地分支到指定的远程。
git push <远程连接/标记名称> --all当你推送一个分支或使用 --all 标志。--tags 标志会将你所有的本地标签推送到远程 repo 上。

贡献者

页面历史

撰写

布局切换

调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。

全部展开
使侧边栏和内容区域占据整个屏幕的全部宽度。
全部展开,但侧边栏宽度可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
全部展开,且侧边栏和内容区域宽度均可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
原始宽度
原始的 VitePress 默认布局宽度

页面最大宽度

调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。

调整页面最大宽度
一个可调整的滑块,用于选择和自定义页面最大宽度。

内容最大宽度

调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。

调整内容最大宽度
一个可调整的滑块,用于选择和自定义内容最大宽度。

聚光灯

支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。

ON开启
开启聚光灯。
OFF关闭
关闭聚光灯。

聚光灯样式

调整聚光灯的样式。

置于底部
在当前鼠标悬停的元素下方添加一个纯色背景以突出显示当前鼠标悬停的位置。
置于侧边
在当前鼠标悬停的元素旁边添加一条固定的纯色线以突出显示当前鼠标悬停的位置。